package com.aloda.utils;

import com.aloda.exception.BaseException;

public class MyJsonUtils {

    /**
     * 清理JSON字符串，去除转义字符和多余的空格/换行
     */
    public static String cleanJsonString(String jsonStr) {
        // 1. 找到第一个 `[`的位置
        int jsonStart = jsonStr.indexOf("[");
        if (jsonStart == -1) {
            throw new BaseException("无效的JSON格式: 未找到起始字符 [ ");
        }

        // 2. 截取有效的JSON部分
        String potentialJson = jsonStr.substring(jsonStart);

        // 3. 去除转义字符（如 \" 变成 "）
        String cleaned = potentialJson
                .replace("\\\"", "\"")  // 处理 \" -> "
                .replace("\\n", "")     // 去除 \n
                .replace("\\r", "")     // 去除 \r
                .replace("\\t", "")     // 去除 \t
                .trim();                // 去除首尾空格

        // 4. 检查是否以 `]` 或 `}` 结尾
        if (!cleaned.endsWith("]")) {
            // 尝试找到最后一个 `]` 或 `}`
            int lastBracket = cleaned.lastIndexOf("]");
            if (lastBracket != -1) {
                cleaned = cleaned.substring(0, lastBracket + 1);
            } else {
                throw new BaseException("无效的JSON格式: 未找到结束字符 ]");
            }
        }

        return cleaned;
    }

}
